home *** CD-ROM | disk | FTP | other *** search
- #!/bin/sh
-
- export PATH || (echo "OOPS, this isn't sh. Desperation time. I will feed myself to sh."; sh $0; kill $$)
-
- #
- #Set up variables
- #
- USAGE="$0: usage: $0 -wais waisargs -t next|wais -N 'long link name' datadir"
- gopherhome=GHOME
- indextype=ITYPE
- verbose=0
- indexname="Index of files in this directory"
- waisargs=""
- useinplaceindex=0
- Indexdir="moo"
-
- # Parse args.
- while true ; do
- case "$1" in
- -t )
- shift
- if [ ! ${1-""} ] ; then
- echo $USAGE 1>&2
- exit 1
- fi
- indextype="$1"
- shift
- ;;
-
- -a )
- useinplaceindex=1
- shift
- ;;
-
- -N )
- shift
- if [ ! "${1}" ] ; then
- echo $USAGE 1>&2
- exit 1
- fi
- indexname="$1"
- shift
- ;;
-
- -i )
- shift
- if [ ! "${1}" ] ; then
- echo $USAGE 1>&2
- exit 1
- fi
- Indexdir="$1"
- shift
- ;;
-
- -wais )
- shift
- if [ ! "${1}" ] ; then
- echo $USAGE 1>&2
- exit 1
- fi
- waisargs="$1"
- shift
- ;;
-
- -v )
- verbose=1
- shift
- ;;
-
- -D )
- set -x
- shift
- ;;
- -* )
- echo "$USAGE" 1>&2
- exit 1
- ;;
- * )
- break
- ;;
- esac
- done
-
- #
- # Now we have the directory
- #
-
- #
- # Find out if it's a relative path
- #
-
- if (cd /;cd "$1") ; then
- Datadir="$1"
- else
- Datadir="$PWD/$1"
- fi
-
-
- #
- # Set the indexdir if it isn't set
- #
-
- if [ $Indexdir = "moo" ]; then
- Indexdir=$Datadir
- fi
-
-
- #
- # Find the path relative to the gopher-root (for Path= line)
- #
-
- Pathdir=`echo "$Indexdir" | sed "s.$gopherhome.."`
-
- if test "$verbose" = "1" ; then
- echo "Gopher Home directory is $gopherhome"
- echo "Indexes are hidden in $Indexdir"
- echo "Indexing files in $Datadir"
- fi
-
-
- ################################################################
-
- nextindex() {
- #
- # See if it's writable
- #
- if test ! -w "$gopherhome" ; then
- echo "Sorry, can't write to $gopherhome"
- exit 1;
- fi
-
- if test -h "$gopherhome/.index" ; then
- echo "Another indexing job is probably running"
- echo "Check the link $gopherhome/.index"
- exit 1
- fi
-
- mkdir /tmp/gopherindex$$
- mkdir /tmp/gopherindex$$/.index
- mkdir "$Datadir/.index"
- ln -s /tmp/gopherindex$$/.index "$gopherhome/.index"
-
-
- if [ $useinplaceindex = 1 ]; then
- cp "$Datadir/.index/index.ixif" "/tmp/gopherindex$$/.index"
- fi
-
- if test $verbose = 1 ; then
- ixargs="-Vv"
- else
- ixargs=""
- fi
-
- ixargs="$ixargs -f ascii -i $gopherhome/.index/index.ixif"
-
- cd $gopherhome
- ixBuild $ixargs "$Datadir"
-
- mv /tmp/gopherindex$$/.index/index.ixif "$Datadir/.index"
- rm -rf "/tmp/gopherindex$$"
- rm "$gopherhome/.index"
-
- #
- # Make the link
- #
- echo "Name=$indexname" > "$Datadir/.IndexLink"
- echo "Numb=1" >> "$Datadir/.IndexLink"
- echo "Type=7" >> "$Datadir/.IndexLink"
- echo "Host=+" >> "$Datadir/.IndexLink"
- echo "Port=+" >> "$Datadir/.IndexLink"
- echo "Path=7$Pathdir" >> "$Datadir/.IndexLink"
- }
-
-
- waisindexer() {
- mkdir "$Indexdir/.waisindex$$"
-
- if [ $useinplaceindex = 1 ]; then
- cp "$Indexdir/.waisindex/"* "$Indexdir/.waisindex$$"
- fi
-
- if test $verbose = 1 ; then
- waisargs="$waisargs"
- else
- waisargs="$waisargs -l 2"
- fi
-
-
- cd "$Indexdir/.waisindex$$"
- find "$Datadir" -type f -print | \
- grep -v '/\.' |waisindex -stdin $waisargs
-
- #
- # Make the link
- #
- echo "Name=$indexname" > "$Datadir/.IndexLink"
- echo "Numb=1" >> "$Datadir/.IndexLink"
- echo "Type=7" >> "$Datadir/.IndexLink"
- echo "Host=+" >> "$Datadir/.IndexLink"
- echo "Port=+" >> "$Datadir/.IndexLink"
- echo "Path=7$Pathdir/.waisindex/index" >> "$Datadir/.IndexLink"
-
- rm -rf "$Indexdir/.waisindex"
- mv "$Indexdir/.waisindex$$" "$Indexdir/.waisindex"
- }
-
-
-
-
- if [ "$indextype" = "next" ]; then
- nextindex
- else
- #
- #Must be WAIS instead
- #
- waisindexer
- fi
-
- exit 0
-